<?php

class Doctrine_Model_PromesaJuicioDao extends Doctrine_Model_BaseDao {

    public function obtenerTodos() {
        return $this->getEntityManager()
                        ->createQuery('select p from Doctrine_Model_Entities_PromesaJuicio p')
                        ->getResult();
    }

    public function obtenerPorId($id) {
        return $this->getEntityManager()->find('Doctrine_Model_Entities_PromesaJuicio', $id);
    }

    public function obtenerEntreFechas($desde, $hasta) {
        return $this->getEntityManager()
                        ->createQuery("select j from Doctrine_Model_Entities_PromesaJuicio j WHERE j.fechaPromesa >= '" . $desde . "' and j.fechaPromesa <= '" . $hasta . "' ORDER BY j.fechaPromesa ASC ")
                        ->getResult();
    }

    public function obtenerPorJuicioId($juicio_id) {
        return $this->getEntityManager()
                        ->createQuery("select p from Doctrine_Model_Entities_PromesaJuicio p JOIN p.juicio j  WHERE j.id=" . $juicio_id)
                        ->getResult();
    }

    public function obtenerPorJuicioIdYPendienteDeCobro($juicio_id) {
        return $this->getEntityManager()
                        ->createQuery("select p from Doctrine_Model_Entities_PromesaJuicio p JOIN p.juicio j  WHERE j.id=" . $juicio_id . " and p.pendienteDeCobro=1")
                        ->getResult();
    }

    public function obtenerPorJuicioIdYPedirSaldo($juicio_id) {
        return $this->getEntityManager()
                        ->createQuery("select p from Doctrine_Model_Entities_PromesaJuicio p JOIN p.juicio j  WHERE j.id=" . $juicio_id . " and p.pedirSaldo=1")
                        ->getResult();
    }

//    public function obtenerPorCliente($cliente_id){
//        return $this->getEntityManager()
//                ->createQuery("SELECT j FROM Doctrine_Model_Entities_Juicio j JOIN j.cliente c WHERE c.id = ".$cliente_id." ORDER BY j.id DESC ")
//                ->getResult();
//    }

    public function guardar(Doctrine_Model_Entities_PromesaJuicio $unaPromesa) {
        try {
            $this->getEntityManager()->persist($unaPromesa);
            $this->getEntityManager()->flush();
            return true;
        } catch (Exception $e) {
            echo ($e->xdebug_message);
            $logger = Zend_Registry::get('logger');
            $logger->log("Error:" . $e->getMessage(), Zend_Log::ERR);
            return false;
        }
    }

}
